package mx.ipn.pruebas;

import java.util.ArrayList;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class Pruaba18DAOs {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		short resultado;

		// ***********************************************************************************************
		// CHOFER
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<CHOFER>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			PersonaTO personaTO = new PersonaTO();
			personaTO.setIdPersona(1);

			ChoferDAO choferDAO = fabricaMySQL.getChoferDAO();
			ChoferTO choferTO = new ChoferTO(0, FechaHoraTO
					.getFecha("2000/03/03"), "123456789", FechaHoraTO
					.getFecha("2009/09/09"), 1, true);

			// insert
			/*
			 * if (choferDAO.insertChofer(choferTO)) {
			 * choferDAO.insertChofer(choferTO); System.out
			 * .println("+++++++++++++++++++ Insertado correctamente"); } else
			 * System.out.println("Falla en la insercion");
			 */
			// desactiva
			resultado = choferDAO.activaDesactivaChofer(5, false);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Desactivado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el Desactivado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// actualiza
			choferTO.setIdChofer(4);
			choferTO.setActivo(false);

			resultado = choferDAO.updateChofer(choferTO);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			choferTO = choferDAO.findChoferById(1);
			if (choferTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CHOFER");
				ImprimirTO.Imprime(choferTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out
					.println("------------------------- BUSQUEDA POR NUMERO TARJETON");
			choferTO = choferDAO.findChoferByNumeroTarjeton("123456789");
			if (choferTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CHOFER");
				ImprimirTO.Imprime(choferTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out.println("**++++++++++++++++++++++ SELECT CHOFER +**");
			java.util.Collection<ChoferTO> listChoferTO = choferDAO
					.selectChofer();
			if (listChoferTO != null) {
				for (int i = 0; i < listChoferTO.size(); i++) {
					choferTO = ((ArrayList<ChoferTO>) listChoferTO).get(i);

					System.out.println("CHOFER");
					ImprimirTO.Imprime(choferTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT CHOFER ACTIVO+**");
			listChoferTO = choferDAO.selectChoferActivo();
			if (listChoferTO != null) {
				for (int i = 0; i < listChoferTO.size(); i++) {
					choferTO = ((ArrayList<ChoferTO>) listChoferTO).get(i);

					System.out.println("CHOFER");
					ImprimirTO.Imprime(choferTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT CHOFER RANGO FECHA VENCIMIENTO+**");
			listChoferTO = choferDAO.selectChoferActivoByRangoFechaVencimiento(
					FechaHoraTO.getFecha("2000/01/01"), FechaHoraTO
							.getFecha("2009/01/01"));
			if (listChoferTO != null) {
				for (int i = 0; i < listChoferTO.size(); i++) {
					choferTO = ((ArrayList<ChoferTO>) listChoferTO).get(i);

					System.out.println("CHOFER");
					ImprimirTO.Imprime(choferTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT CHOFER NOMBRE AP+**");
			listChoferTO = choferDAO.selectChoferByNombreApellidoPaterno(
					"chamuco", "valeron");
			if (listChoferTO != null) {
				for (int i = 0; i < listChoferTO.size(); i++) {
					choferTO = ((ArrayList<ChoferTO>) listChoferTO).get(i);

					System.out.println("CHOFER");
					ImprimirTO.Imprime(choferTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT CHOFER NOMBRE AP ACTIVO+**");
			listChoferTO = choferDAO.selectChoferActivoByNombreApellidoPaterno(
					"chamuco", "valeron");
			if (listChoferTO != null) {
				for (int i = 0; i < listChoferTO.size(); i++) {
					choferTO = ((ArrayList<ChoferTO>) listChoferTO).get(i);

					System.out.println("CHOFER");
					ImprimirTO.Imprime(choferTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}
		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

		// ***********************************************************************************************
		// USUARIO
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<USUARIO>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			GrupoUsuarioTO grupoUsuarioTO = new GrupoUsuarioTO();
			grupoUsuarioTO.setIdGrupoUsuario((short) 1);

			EmpleadoTO empleadoTO = new EmpleadoTO();
			empleadoTO.setIdEmpleado(1);

			UsuarioDAO usuarioDAO = fabricaMySQL.getUsuarioDAO();
			UsuarioTO usuarioTO = new UsuarioTO(0, "rodolfo", "rodolfo",
					(grupoUsuarioTO), 4, true);

			// insert
			/*
			 * if (usuarioDAO.insertUsuario(usuarioTO)) {
			 * usuarioDAO.insertUsuario(usuarioTO); System.out
			 * .println("+++++++++++++++++++ Insertado correctamente"); } else
			 * System.out.println("Falla en la insercion");
			 */
			// desactiva
			resultado = usuarioDAO.activaDesactivaUsuario(6, false);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Desactivado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el Desactivado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// actualiza
			usuarioTO.setIdUsuario(5);
			usuarioTO.setActivo(false);

			resultado = usuarioDAO.updateUsuario(usuarioTO);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			usuarioTO = usuarioDAO.findUsuarioById(1);
			if (usuarioTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("USUARIO");
				ImprimirTO.Imprime(usuarioTO);
				System.out.println("GRUPOUSUARIO");
				ImprimirTO.Imprime(usuarioTO.getGrupoUsuarioTO());
				System.out.println("IDEMPLEADO");
				System.out.println(usuarioTO.getIdEmpleado());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------------- BUSQUEDA POR NOMBRE");
			usuarioTO = usuarioDAO.findUsuarioByNombre("contra2");
			if (usuarioTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("USUARIO");
				ImprimirTO.Imprime(usuarioTO);
				System.out.println("GRUPOUSUARIO");
				ImprimirTO.Imprime(usuarioTO.getGrupoUsuarioTO());
				System.out.println("IDEMPLEADO");
				System.out.println(usuarioTO.getIdEmpleado());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out
					.println("------------------------- BUSQUEDA POR EMPLEADO");
			usuarioTO = usuarioDAO.findUsuarioByEmpleado(2);
			if (usuarioTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("USUARIO");
				ImprimirTO.Imprime(usuarioTO);
				System.out.println("GRUPOUSUARIO");
				ImprimirTO.Imprime(usuarioTO.getGrupoUsuarioTO());
				System.out.println("IDEMPLEADO");
				System.out.println(usuarioTO.getIdEmpleado());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out.println("**++++++++++++++++++++++ SELECT USUARIO +**");
			java.util.Collection<UsuarioTO> listUsuarioTO = usuarioDAO
					.selectUsuarios();
			if (listUsuarioTO != null) {
				for (int i = 0; i < listUsuarioTO.size(); i++) {
					usuarioTO = ((ArrayList<UsuarioTO>) listUsuarioTO).get(i);

					System.out.println("USUARIO");
					ImprimirTO.Imprime(usuarioTO);
					System.out.println("GRUPOUSUARIO");
					ImprimirTO.Imprime(usuarioTO.getGrupoUsuarioTO());
					System.out.println("IDEMPLEADO");
					System.out.println(usuarioTO.getIdEmpleado());

				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT USUARIO POR GRUPOUSUARIO +**");
			listUsuarioTO = usuarioDAO.selectUsuariosByGrupo((short) 1);
			if (listUsuarioTO != null) {
				for (int i = 0; i < listUsuarioTO.size(); i++) {
					usuarioTO = ((ArrayList<UsuarioTO>) listUsuarioTO).get(i);

					System.out.println("USUARIO");
					ImprimirTO.Imprime(usuarioTO);
					System.out.println("GRUPOUSUARIO");
					ImprimirTO.Imprime(usuarioTO.getGrupoUsuarioTO());
					System.out.println("IDEMPLEADO");
					System.out.println(usuarioTO.getIdEmpleado());

				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

		// ***********************************************************************************************
		// CLIENTEDIRECCION
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<CLIENTEDIRECCION>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			ClienteTO clienteTO = new ClienteTO();
			clienteTO.setIdCliente((short) 1);

			DireccionTO direccionTO = new DireccionTO();
			direccionTO.setIdDireccion(1);

			ClienteDireccionDAO clienteDireccionDAO = fabricaMySQL
					.getClienteDireccionDAO();
			ClienteDireccionTO clienteDireccionTO = new ClienteDireccionTO();
			clienteDireccionTO.setIdClienteDireccion(0);
			clienteDireccionTO.setIdCliente(1);
			clienteDireccionTO.setIdDireccion(1);
			clienteDireccionTO.setActivo(true);
			clienteDireccionTO.setFrecuencia(3);

			// insert
			/*if (clienteDireccionDAO.insertClienteDireccion(clienteDireccionTO)) {
				clienteDireccionDAO.insertClienteDireccion(clienteDireccionTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");
			*/
			// desactiva
			resultado = clienteDireccionDAO.ActivaDesactivaClienteDireccion(6,
					false);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Desactivado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el Desactivado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// actualiza
			clienteDireccionTO.setIdClienteDireccion(5);
			clienteDireccionTO.setActivo(false);

			resultado = clienteDireccionDAO
					.updateClienteDireccion(clienteDireccionTO);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			clienteDireccionTO = clienteDireccionDAO
					.findClienteDireccionById(1);
			if (clienteDireccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTEDIRECCION");
				ImprimirTO.Imprime(clienteDireccionTO);
				for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
					System.out.println("Cliente");
					ImprimirTO
							.Imprime(clienteDireccionTO.getListClienteTO()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
					System.out.println("DIRECCION");
					ImprimirTO
							.Imprime(clienteDireccionTO.getListDireccionTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busca
			System.out
					.println("------------------------- BUSQUEDA POR IDCLIENTEIDDIRECCION");
			clienteDireccionTO = clienteDireccionDAO
					.findClienteDireccionByIdClienteIdDireccion(1, 1);
			if (clienteDireccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTEDIRECCION");
				ImprimirTO.Imprime(clienteDireccionTO);
				for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
					System.out.println("Cliente");
					ImprimirTO
							.Imprime(clienteDireccionTO.getListClienteTO()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
					System.out.println("DIRECCION");
					ImprimirTO
							.Imprime(clienteDireccionTO.getListDireccionTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT CLIENTEDIRECCION +**");
			java.util.Collection<ClienteDireccionTO> listClienteDireccionTO = clienteDireccionDAO
					.selectClienteDireccion();
			if (listClienteDireccionTO != null) {
				for (int i = 0; i < listClienteDireccionTO.size(); i++) {
					clienteDireccionTO = ((ArrayList<ClienteDireccionTO>) listClienteDireccionTO)
							.get(i);

					System.out.println("CLIENTEDIRECCION");
					ImprimirTO.Imprime(clienteDireccionTO);
					for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
						System.out.println("Cliente");
						ImprimirTO.Imprime(clienteDireccionTO
								.getListClienteTO()[x]);
					}
					for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
						System.out.println("DIRECCION");
						ImprimirTO.Imprime(clienteDireccionTO
								.getListDireccionTO()[x]);
					}
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT CLIENTEDIRECCION ACTIVO +**");
			listClienteDireccionTO = clienteDireccionDAO
					.selectClienteDireccionActivo();
			if (listClienteDireccionTO != null) {
				for (int i = 0; i < listClienteDireccionTO.size(); i++) {
					clienteDireccionTO = ((ArrayList<ClienteDireccionTO>) listClienteDireccionTO)
							.get(i);

					System.out.println("CLIENTEDIRECCION");
					ImprimirTO.Imprime(clienteDireccionTO);
					for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
						System.out.println("Cliente");
						ImprimirTO.Imprime(clienteDireccionTO
								.getListClienteTO()[x]);
					}
					for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
						System.out.println("DIRECCION");
						ImprimirTO.Imprime(clienteDireccionTO
								.getListDireccionTO()[x]);
					}
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}
			
			// Busca
			System.out.println("------------------- BUSQUEDA POR PUESTO CLIENTE");
			clienteDireccionTO = clienteDireccionDAO.selectClienteDireccionByCliente(1);
			if (clienteDireccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTEDIRECCION");

				for (int x = 0; x < clienteDireccionTO.getListIdClienteDireccion().length; x++) {
					System.out.println("IDCLIENTEDIRECCION");
					System.out.println(clienteDireccionTO.getListIdClienteDireccion()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(clienteDireccionTO.getListActivos()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("FRECUENCIA");
					System.out.println(clienteDireccionTO.getListFrecuencia()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
					System.out.println("DIRECCION");
					ImprimirTO.Imprime(clienteDireccionTO.getListDireccionTO()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteDireccionTO.getListClienteTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}
			
			
			// Busca
			System.out.println("------------------- BUSQUEDA POR PUESTO CLIENTE ACTIVO");
			clienteDireccionTO = clienteDireccionDAO.selectClienteDireccionActivoByCliente(1);
			if (clienteDireccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTEDIRECCION");

				for (int x = 0; x < clienteDireccionTO.getListIdClienteDireccion().length; x++) {
					System.out.println("IDCLIENTEDIRECCION");
					System.out.println(clienteDireccionTO.getListIdClienteDireccion()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(clienteDireccionTO.getListActivos()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("FRECUENCIA");
					System.out.println(clienteDireccionTO.getListFrecuencia()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
					System.out.println("DIRECCION");
					ImprimirTO.Imprime(clienteDireccionTO.getListDireccionTO()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteDireccionTO.getListClienteTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}
			
			// Busca
			System.out.println("------------------- BUSQUEDA POR DIRECCION");
			clienteDireccionTO = clienteDireccionDAO.selectClienteDireccionByDireccion(1);
			if (clienteDireccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTEDIRECCION");

				for (int x = 0; x < clienteDireccionTO.getListIdClienteDireccion().length; x++) {
					System.out.println("IDCLIENTEDIRECCION");
					System.out.println(clienteDireccionTO.getListIdClienteDireccion()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(clienteDireccionTO.getListActivos()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("FRECUENCIA");
					System.out.println(clienteDireccionTO.getListFrecuencia()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteDireccionTO.getListClienteTO()[x]);
				}
				
				for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
					System.out.println("DIRECCION");
					ImprimirTO.Imprime(clienteDireccionTO.getListDireccionTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR DIRECCION ACTIVO");
			clienteDireccionTO = clienteDireccionDAO.selectClienteDireccionActivoByDireccion(1);
			if (clienteDireccionTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTEDIRECCION");

				for (int x = 0; x < clienteDireccionTO.getListIdClienteDireccion().length; x++) {
					System.out.println("IDCLIENTEDIRECCION");
					System.out.println(clienteDireccionTO.getListIdClienteDireccion()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(clienteDireccionTO.getListActivos()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListActivos().length; x++) {
					System.out.println("FRECUENCIA");
					System.out.println(clienteDireccionTO.getListFrecuencia()[x]);
				}
				for (int x = 0; x < clienteDireccionTO.getListClienteTO().length; x++) {
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteDireccionTO.getListClienteTO()[x]);
				}
				
				for (int x = 0; x < clienteDireccionTO.getListDireccionTO().length; x++) {
					System.out.println("DIRECCION");
					ImprimirTO.Imprime(clienteDireccionTO.getListDireccionTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

	}
}
